Skip to content

[mobile] .NET 11 mobile runtime configuration updates#129293

Open
kotlarmilos wants to merge 9 commits into
mainfrom
dev/update-sdk-mobile
Open

[mobile] .NET 11 mobile runtime configuration updates#129293
kotlarmilos wants to merge 9 commits into
mainfrom
dev/update-sdk-mobile

Conversation

@kotlarmilos

@kotlarmilos kotlarmilos commented Jun 11, 2026

Copy link
Copy Markdown
Member

Description

Remove the Mono mobile test legs from the runtime CI pipelines:

  • eng/pipelines/runtime.yml: the Mono mobile smoke legs (android, iossimulator, maccatalyst), the mobile platforms dropped from MonoAOTOffsets (kept browser_wasm and wasi_wasm), and tvossimulator_arm64 dropped from the Mono AllSubsets_Mono build leg.
  • eng/pipelines/extra-platforms/runtime-extra-platforms-{ioslike,ioslikesimulator,maccatalyst}.yml: the Mono AllSubsets_Mono_RuntimeTests legs.
  • eng/pipelines/extra-platforms/runtime-extra-platforms-{android,androidemulator}.yml: the Mono libraries-test and runtime-test legs.
  • eng/pipelines/performance/perf-build.yml: the mono_arm64_android and mono_arm64_ios build types are removed entirely (parameters and build legs), not left as disabled parameters.

WebAssembly Mono, desktop Mono, and the CoreCLR/NativeAOT mobile legs are untouched.

Validation pipelines (must pass): runtime, runtime-extra-platforms. wasm legs stay green.

Validation pins (temporary): pinned to .NET 11 test build 11.0.100-preview.6.26310.106 (AzDO dotnet-unified-build run 2996804, BAR 318158, source dotnet/dotnet@8d5d82abe13, branch dev/update-sdk-mobile-stage2) and the public general-testing NuGet feed, so CI exercises the SDK with the Mono mobile workloads and RIDs removed.

Related performance changes: dotnet/performance#5240

TODO before merge: revert the global.json SDK pin and the NuGet.config feed back to the official VMR version and the main feed.

kotlarmilos and others added 3 commits June 11, 2026 13:40
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @akoeplinger, @matouskozak, @simonrozsival
See info in area-owners.md if you want to be subscribed.

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the .NET 11 mobile-related CI configuration by reducing Mono mobile coverage in runtime pipelines and adjusting repo-level SDK / restore inputs to validate against a temporary SDK + feed combination.

Changes:

  • Add the general-testing NuGet feed to the repo restore sources.
  • Pin global.json to a specific .NET 11 preview SDK version for validation.
  • Remove Mono mobile library-test legs from runtime.yml / extra-platform pipelines, and disable Mono mobile perf-build legs by default.
Show a summary per file
File Description
NuGet.config Adds general-testing package source (temporary validation input).
global.json Pins repo SDK/tooling to 11.0.100-preview.6.26310.106 (temporary validation input).
eng/pipelines/runtime.yml Removes Mono mobile library-test legs from the main runtime pipeline (keeps WASM/CoreCLR/NativeAOT legs).
eng/pipelines/performance/perf-build.yml Disables Mono Android/iOS perf build legs by default (still available when enabled).
eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml Removes Mono MacCatalyst libraries-test legs.
eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml Removes Mono iOS-simulator libraries-test legs.
eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml Removes Mono tvOS libraries-test legs.

Copilot's findings

Comments suppressed due to low confidence (1)

NuGet.config:14

  • Adding general-testing as an always-on package source can change restore behavior (e.g., pulling newer prerelease packages) for both CI and local builds. If this is meant to be a temporary validation pin, consider adding an inline note here to reduce the risk of accidentally merging with the extra feed still enabled.
  <packageSources>
    <clear />
    <add key="general-testing" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/general-testing/nuget/v3/index.json" />
    <!--
      'src/test/PrepareTestAssets/PrepareTestAssets.proj' generates a NuGet.config file using this
      one as a template. The following line is a marker to insert the test restore sources.
    -->
  • Files reviewed: 7/7 changed files
  • Comments generated: 2

Comment thread eng/pipelines/performance/perf-build.yml Outdated
Comment thread global.json
Remove the Mono mobile runtime-test legs (tvos, iossimulator, maccatalyst)
and the Mono mobile libraries-test legs (android devices and emulator) from
the extra-platforms pipelines, and remove the Mono mobile build types from
the perf build instead of leaving them as disabled parameters. CoreCLR,
NativeAOT, desktop Mono and wasm Mono legs are unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

This comment has been minimized.

@kotlarmilos

Copy link
Copy Markdown
Member Author

/azp run runtime-extra-platforms

@kotlarmilos kotlarmilos marked this pull request as ready for review June 12, 2026 08:21
Copilot AI review requested due to automatic review settings June 12, 2026 08:21
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

Remove the run_android_mono_jit and run_android_mono_aot parameters, their
include-gate references, and the forwarding overrides, matching the removal
of the Android Mono JIT/AOT job groups in runtime-perf-jobs.yml. Android
CoreCLR and desktop Mono perf toggles are kept.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

This comment has been minimized.

… templates

The iOS simulator and MacCatalyst CoreCLR jobs referenced isiOSLikeOnlyBuild,
which is not declared in those templates' parameters and is not passed by
runtime-extra-platforms.yml. Use each template's declared flag
(isiOSLikeSimulatorOnlyBuild and isMacCatalystOnlyBuild) so the templates are
self-contained and gated consistently with their sibling jobs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 12, 2026 08:58
@kotlarmilos

Copy link
Copy Markdown
Member Author

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@kotlarmilos kotlarmilos enabled auto-merge (squash) June 15, 2026 13:37
@kotlarmilos kotlarmilos disabled auto-merge June 15, 2026 13:37
Restore global.json and NuGet.config to the official dependency-flow versions
ahead of merge.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 15, 2026 13:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 8/8 changed files
  • Comments generated: 0 new

@github-actions

This comment has been minimized.

@kotlarmilos kotlarmilos enabled auto-merge (squash) June 15, 2026 13:53
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Copilot Code Review

Holistic Assessment

Motivation: Justified. .NET 11 is transitioning mobile platforms from Mono to CoreCLR/NativeAOT. Removing the Mono mobile CI test legs, smoke tests, AOT offsets, and perf build types is the expected follow-through for that transition. WebAssembly Mono and desktop Mono legs are correctly preserved.

Approach: Correct. The PR surgically removes only Mono-flavored mobile legs (Android, iOS, tvOS, MacCatalyst) across the runtime, extra-platforms, and performance pipelines while leaving all CoreCLR/NativeAOT mobile legs untouched. The commit also fixes pre-existing parameter flag mismatches (isiOSLikeOnlyBuildisiOSLikeSimulatorOnlyBuild / isMacCatalystOnlyBuild) that were exposed by the removal.

Summary: ✅ LGTM. The changes are clean, focused, and consistent. All CoreCLR/NativeAOT mobile legs remain intact. Parameter flags are now correctly aligned between callers and templates. The temporary validation pins (global.json SDK and NuGet.config feed) have been reverted in commit 1edbc19. One minor follow-up suggestion below regarding dead code in a downstream template.


Detailed Findings

Detailed Findings

✅ Pipeline removals — Correct and complete

All Mono mobile test legs have been cleanly removed across all affected files:

File What was removed
runtime.yml Mono smoke legs (android, iossimulator, maccatalyst); MonoAOTOffsets for android_x64, ios_arm64, maccatalyst_x64; tvossimulator_arm64 from AllSubsets_Mono build
runtime-extra-platforms-android.yml Mono AllSubsets_Mono library test leg
runtime-extra-platforms-androidemulator.yml Mono runtime tests (minijit + interpreter) and library test legs
runtime-extra-platforms-ioslike.yml tvOS Mono library + runtime test legs
runtime-extra-platforms-ioslikesimulator.yml iOSSimulator Mono library + runtime test legs
runtime-extra-platforms-maccatalyst.yml MacCatalyst Mono library, runtime, and AppSandbox test legs
perf-build.yml mono_arm64_android and mono_arm64_ios parameters and all build-leg references
perf-gapfill.yml run_android_mono_jit and run_android_mono_aot parameters and gate references
perf-build-jobs.yml monoAndroid: true removed from perf-mono-build-jobs.yml invocation

All remaining mobile legs are runtimeFlavor: coreclr (CoreCLR or NativeAOT). No empty jobs: sections were created.

✅ Parameter flag fix — Correct

The PR fixes two pre-existing parameter mismatches exposed by the Mono leg removal:

  • runtime-extra-platforms-ioslikesimulator.yml: isiOSLikeOnlyBuildisiOSLikeSimulatorOnlyBuild (matches what runtime-extra-platforms.yml passes)
  • runtime-extra-platforms-maccatalyst.yml: isiOSLikeOnlyBuildisMacCatalystOnlyBuild (matches what runtime-extra-platforms.yml passes)

Verified that all five sub-template parameter flags now align with their caller in runtime-extra-platforms.yml.

✅ Temporary validation pins — Reverted

Commit 1edbc19 reverts both the global.json SDK pin and the NuGet.config general-testing feed, as tracked in the PR description TODO.

💡 Dead code in perf-mono-build-jobs.yml — Follow-up cleanup

eng/pipelines/performance/templates/perf-mono-build-jobs.yml still declares monoAndroid (line 6) and monoAndroidPacks (line 7) parameters with false defaults, and retains the corresponding job blocks (lines 107–142). No caller sets these to true anymore (perf-build-jobs.yml no longer passes monoAndroid: true; perf-bdn-build-jobs.yml passes monoAndroidPacks: true but is gated behind ${{ if false }}:). These are harmless dead code but could be cleaned up in a follow-up for consistency. Not a blocker.

Note

This review was created by GitHub Copilot.

Generated by Code Review for issue #129293 · ● 38.1M ·

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants